package lambda;

import java.io.File;
import java.io.FileFilter;

/**
 * JDK8之后推出的lambda表达式
 * lambda表达式可以“面向函数式编程”
 * lambda表达式给我们的直观感受是可以用更简洁的语法创建匿名内部类
 * 当要实现的接口中【只有一个抽象方法】，才可以使用lambda表达式去替换原始匿名内部类形式创建
 *
 *
 * 基本语法（箭头函数）
 * （参数列表）->{
 *     方法体
 * }
 */
public class LambdaDemo {
    public static void main(String[] args) {
       File dir=new File("./src/file");
       File[] subs=dir.listFiles(f-> f.getName().contains("t"));

        /*

        //该过滤器的过滤条件时名字含有“t”的则接收
        FileFilter filter=new FileFilter() {
            @Override
            public boolean accept(File file) {
                return file.getName().contains("t");
            }
        };

        FileFilter filter1=(File file) ->{
            return file.getName().contains("t");
        };

        //参数类型可以忽略不写，file这里一般用一个字母表示
        FileFilter filter2=(file) ->{
            return file.getName().contains("t");
        };

        //如果方法体只有一句代码时，方法体的“{}”可以忽略不写
        //如果这句代码含有return关键字，那么在忽略“{}”的同时也要一同忽略return
        FileFilter filter3=(file) -> file.getName().contains("t");

        //如果参数列表只有一个参数是，“()”也可以忽略不行
        FileFilter filter4=file -> file.getName().contains("t");

        */


    }
}
